package basis;

import java.util.Scanner;
/**
 * 螺旋数列
 * @author 71936_000
 *
 */
public class Demo6_SpiralSequence {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入螺旋数列阶数");
		int n = sc.nextInt();
		int[][] a = new int[n][n];
		int num = n * n;
		int min = 0, max = n - 1;
		int i = 0, j = 0;
		for (int x = 0; x < num; x++) {			//确定每个位置的数
			a[i][j] = x + 1;
			if (i == min && j < max) {			//每圈第一行填的数
				j++;
			} else if (j == max && i < max) {	//每圈最后一列填的数
				i++;
			} else if (i == max && j > min) {	//每圈最后一行填的数
				j--;
			} else if (i > min && j == min) {	//每圈第一列填的数
				i--;
			}
			if (i - 1 == min && j == min) {		//一圈结束后，设置下一圈的最大最小坐标
				min++;
				max--;
			}
		}
		for (i = 0; i < n; i++) { // 遍历二维数组，打印魔方
			for (j = 0; j < n; j++) {
				System.out.print(a[i][j] + "\t");
			}
			System.out.println();
		}
	}
}
